
var websocket;

window.ws = {
	init:function(param){
		initWebSocket(param);
	}
}


function initWebSocket(param){
	//判断浏览器是否支持websocket
	if(window.WebSocket){
		websocket = new WebSocket("ws://192.168.30.8:8282")
		
		// 连接建立时触发
		websocket.onopen = function(event){
			// console.info("客户端连接成功！！")
			param.onopen();
		};
		
		// 连接关闭时触发
		websocket.onclose = function(){
			// console.info("客户端断开链接。。。。")
			reConn(); // 关闭后重连 重连失败会继续调用close方法
		}
		// 客户端接收服务端数据时触发
		websocket.onmessage = function(resp){
			// console.info("服务端响应数据："+JSON.stringify(resp.data))
			const data = JSON.parse(resp.data);
			const type = data.type || ''
			// console.info("服务端响应数据："+type)
			param.onmessage(data);
			if(type == 'ping'){
				websocket.send('pong');
			}
		}
		
		// 通信发生错误时触发
		websocket.error = function(){
			console.info("通信发生错误。。。。")
		}
			
	} else {
		alert("不支持websocket")
	}
	
	
	// 重连
	function reConn(){
		setTimeout(function(){
			init();
		},5000)
	}
}

// 发送对象
function sendObj(obj){
	sendStr(JSON.stringify(obj));
}

// 发送字符串
function sendStr(str){
	websocket.send(str);
}